import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { VideoController } from './video.controller';
import { Video } from './video.entity';
import { VideoService } from './video.service';


import { InternetCelebrity } from '../internetCelebrity/internetCelebrity.entity';
import { InternetCelebrityController } from '../internetCelebrity/internetCelebrity.controller';
import { InternetCelebrityService } from '../internetCelebrity/internetCelebrity.service';

import { Answer } from '../answer/answer.entity';
import { AnswerService } from '../answer/answer.service'
import { AnswerController } from '../answer/answer.controller';

import { User } from '../user/user.entity';
import { UserService } from '../user/user.service';
import { Platform } from '../platform/platform.entity';
import { PlatformService } from '../platform/platform.service';

import { MultiImg } from '../multiImg/multiImg.entity';
import { TraceRelaTable } from '../traceRelaTable/traceRelaTable.entity';
import { TraceRelaTableService } from '../traceRelaTable/traceRelaTable.service';
import { AnswerInfo } from '../answerInfo/answerInfo.entity';
import { WxUserService } from '../wxUser/wxUser.service';
import { WxUser } from '../wxUser/wxUser.entity';
import { SettingService } from '../setting/setting.service';
import { Setting } from '../setting/setting.entity';
import { VideoTag } from '../videoTag/videoTag.entity';
import { VideoTagService } from '../videoTag/videoTag.service';
import { Notices } from '../notices/notices.entity';
import { LikeVideo } from '../likeVideo/likeVideo.entity';
import { Reward } from '../reward/reward.entity';
import { Profit } from '../profit/profit.entity';
import { UserSetting } from '../userSetting/userSetting.entity';
import { UserSettingService } from '../userSetting/userSetting.service';
import { InternetCelebrityGroup } from '../internetCelebrityGroup/internetCelebrityGroup.entity';
import { RewardSuccess } from '../rewardSuccess/rewardSuccess.entity';
import { WxUserOpenId } from '../wxUserOpenId/wxUserOpenId.entity';
import { UnConcern } from '../unconcern/unconcern.entity';
import { Concern } from '../concern/concern.entity';
import { WatchRecordIc } from '../watchRecordIc/watchRecordIc.entity';
import { Questions } from '../questions/questions.entity';
import { WatchRecord } from '../watchRecord/watchRecord.entity';
import { AnswerIdCard } from '../answerIdCard/answerIdCard.entity';
import { RechargeFlow } from '../rechargeFlow/rechargeFlow.entity';
import { VideoControllerManager } from './video.controller.manager';
import { VideoServiceManager } from './video.service.manager';
import { ProfitRefund } from '../profitRefund/profitRefund.entity';
import { RejectReason } from '../rejectReason/rejectReason.entity';
import { InternetCelebrityGroupCheck } from '../internetCelebrityGroupCheck/internetCelebrityGroupCheck.entity';
import { ProfitUnLockHome } from '../profitUnLockHome/profitUnLockHome.entity';
import { AnswerReportErrors } from '../answerReportErrors/answerReportErrors.entity';
import { RedisCacheModule } from '../redisCache/redisCache.module';

@Module({
  imports: [
    TypeOrmModule.forFeature([Video, InternetCelebrity, Answer, User, Platform, MultiImg, TraceRelaTable, 
      AnswerInfo, WxUser, Setting, VideoTag, Notices, LikeVideo, Reward, Profit, UserSetting, InternetCelebrityGroup, 
      RewardSuccess, WxUserOpenId, Concern, UnConcern, WatchRecordIc, Questions, WatchRecord, AnswerIdCard, RechargeFlow, ProfitRefund, RejectReason,
      InternetCelebrity, InternetCelebrityGroup, Platform, InternetCelebrityGroupCheck, ProfitUnLockHome, AnswerReportErrors, AnswerIdCard
    ])
  ],
  controllers: [VideoController, InternetCelebrityController, AnswerController, VideoControllerManager],
  providers: [VideoService, InternetCelebrityService, AnswerService, UserService, PlatformService, TraceRelaTableService 
    , WxUserService, SettingService, VideoTagService, UserSettingService, VideoServiceManager
  ],
})
export class VideoModule {}
